import { ajax, isLogin } from '../utils/ajax.js';
import '../lib/jquery.js';
import { nickTest, sexTest, ageTest } from '../utils/reg.js';

// 立即执行异步函数
(async function () {
    try {
        // 经典判断是否登录
        const { status, user, token } = await isLogin();
        if (status!== 1) {
            alert('请先登录！');
            location.href = './login.html';
            return;
        }

        // 将原本的个人数据渲染上去
        $('.username').val(user.username);
        $('.age').val(user.age);
        $('.gender').val(user.gender);
        $('.nickname').val(user.nickname);

        // 当表单提交时
        $('form').on('submit', async function (e) {
            e.preventDefault();

            // 获取输入的数据
            const age = $('.age').val();
            const gender = $('.gender').val();
            const nickname = $('.nickname').val();

            // 检查数据是否为空
            if (age === '') {
                alert('年龄不能为空');
                return;
            }
            if (gender === '') {
                alert('性别不能为空');
                return;
            }
            if (nickname === '') {
                alert('昵称不能为空');
                return;
            }

            // 正则校验
            if (!ageTest(age)) {
                alert('年龄格式错误');
                return;
            }
            if (!sexTest(gender)) {
                alert('性别格式错误');
                return;
            }
            if (!nickTest(nickname)) {
                alert('昵称格式错误');
                return;
            }

            // 要给服务器传递的数据
            const data = { id: user.id, age, gender, nickname };
            // 请求 update 接口，更新用户信息
            const response = await ajax.post('/users/update', data, { headers: { authorization: token } });
            const { code } = response.data;
            if (code!== 1) {
                alert('修改失败');
            } else {
                alert('修改成功');
            }
        });
    } catch (error) {
        console.error('发生错误:', error);
        alert('出现异常，请稍后再试');
    }
})();